/*输入n个整数，然后逆序输出这n个整数。例如：
 输入 5个数
输入: 11 22 33 44 55
输出：55 44 33 22 11
 使用递归方式进行逆序输出。
*/
#include <stdio.h>


/**
 * 递归函数用于倒序打印数组中的元素
 *
 * @param n 数组的长度，用于指示当前递归层级应打印的元素位置
 * @param a 数组，包含待打印的整型元素
 *
 * 该函数通过递归的方式从数组的最后一个元素开始向前逐个打印数组元素
 * 当数组长度n为1时，直接打印数组中的唯一元素，递归终止
 * 否则，打印当前数组的最后一个元素（下标为n-1），然后以n-1为新的数组长度进行递归调用
 */
void reverse(int n, int a[]) {
    // 当数组长度为1时，直接打印数组中的唯一元素
    if (n == 1) {
        printf("%d ", a[0]);
    } else {
        // 打印当前数组的最后一个元素
        printf("%d ", a[n - 1]);
        // 以n-1为新的数组长度进行递归调用
        reverse(n - 1, a);
    }
}


int main() {
    int n, a[100];
    printf("请输入整数个数：");
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    reverse(n, a);
    return 0;
}